package com.bilibili.server.interceptor;

/**
 * @author HuangRongFu
 * 2021/11/17 星期三7:08 下午
 */

import com.bilibili.model.db.User;

/**
 * 登录用户信息持有者
 *  通过ThreadLocal形式 , 存储登录用户数据
 */
public class UserHolder {

    private static ThreadLocal<User> userThreadLocal = new ThreadLocal<>();

    /**
     * 当前线程中存入用户数据
     *@params: user
     */
    public static void setUser(User user){
        userThreadLocal.set(user);
    }

    /**
     * 当前线程中取出用户数据
     *@params: user
     */
    public static User getUser(){
       return userThreadLocal.get();
    }

    /**
     * 获取线程中的用户id
     */
    public static Long getUserId(){
        return userThreadLocal.get().getId();
    }


    public static void remove(){
        userThreadLocal.remove();
    }
}
